Graphical user interface for generating multiple tasks

ABSTRACT

Methods, systems, and devices are provided for generating a graphical user interface configured to display, at least in part, a schedule. According to one aspect, the system can receive selectable fields of a client and selectable fields one or more providers from a plurality of providers. The system can determine the quality of pairings between the client and each of the one or more providers based on the one or more selectable fields of the client and the one or more selectable fields of the one or more providers. The system can generate a schedule of potential sessions based on the pairings. The system can score each of the potential sessions and display the schedule and scores to a user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/727,643, filed Dec. 26, 2019, which claims the benefit of U.S.Provisional Application No. 62/791,670, filed Jan. 11, 2019, which ishereby incorporated by reference in its entirety.

BACKGROUND

Across many industries, entities or individuals have the task ofgeographically assigning a remote party or a network of parties toprovide services or fulfil certain requirements from the entities'clients. For example, a business may concurrently have multiple clientsthat need requirements met or services fulfilled as well as provide anetwork of individuals or resources to service each of the clients'needs.

For example, a plumbing business may have a network of plumbers, oftenremote, dispersed across a geographic region ready to be assigned workin individuals' homes. The plumbing business may also have a network ofclients who need servicing in the clients' homes. The plumbing businessmay allocate their network of remote plumbers to their clients withappointments between an individual plumber and a client. Each remoteplumber can then travel to each individual's home based on theappointment set. In another example, medical care professionals performservices directly to the client at their home. A healthcare entity thatworks in such an industry may employ or contract a network of medicalcare professionals to service their patients across a geographic area.The medical care professionals will be based out of their homes andtravel directly to the location of the client for an appointment.

Generally, making assignments or appointments between each resource,such as a service provider, and each requirement, such as a client, is adynamic process that is influenced by a number of factors such as traveltime of each service provider, preferred or required appointment time ofeach client, and more. These influences produce a cognitive load on anentity creating a schedule of appointments between the resources andrequirements.

Currently, businesses and entities that are tasked with creating thesetypes of dynamic schedules with a network of resources (providers) andrequirements (clients) are done manually. When the schedules are beingcreated, efficiency of maximizing a provider's substantive work time canbe lost when attempting to satisfy each condition and requirements ofclients. Thus, determining a schedule that satisfies conditions andrequirements from clients can be greatly optimized.

BRIEF SUMMARY

The present disclosure relates generally to systems and methods forgenerating a schedule. In one aspect, a method to generate the schedulecan include receiving one or more selectable fields of a client,receiving one or more selectable fields of one or more providers from aplurality of providers, determining pairings between the client and eachof the one or more providers based on the one or more selectable fieldsof the client and the one or more selectable fields of the one or moreproviders from the plurality of providers, generating a schedule of oneor more potential sessions between the client and a first provider fromthe plurality of providers based on the pairings, and displaying theschedule on a graphical user interface.

In one aspect, the method can include generating a schedule of one ormore potential sessions between the client and a second or moreproviders from the plurality of providers based on the pairings. In oneaspect, the method can include receiving the one or more selectablefields of the client includes receiving inputs from a user of thegraphical interface, receiving selections of the one or more selectablefields from the user, or receiving client data from a remote server. Inone aspect, the one or more selectable fields of the client can includerules or requirements of the client. In one aspect, the one or moreselectable fields of the client can include availability windows of theclient. In one aspect, the one or more selectable fields of the firstprovider can include availability windows of the first provider. In oneaspect, the one or more selectable fields of the one or more providerscan include credentials of the one or more providers.

In one aspect, the method can include generating the schedule, at leastin part, based on calculating travel time and distance for each of theproviders from the plurality of providers to the client.

In one aspect, the method can include displaying a score associated witheach of the one or more potential sessions between the client and thefirst and second or more providers.

In one aspect, the method can include receiving selectable fields of aplurality of clients, receiving selectable fields of a plurality ofproviders, determining pairings among each client of the plurality ofclients and each provider among the plurality of providers based on theselectable fields of the plurality of clients and selectable fields ofthe plurality of providers, and generating a schedule comprising one ormore potential sessions between each client with one or more providersfrom the plurality of providers based on the pairings.

In one aspect, the method can include optimizing the schedule based on ametric and within a set of constraints, wherein the metric may compriserevenue or profit of the providers and the constraints may compriseprovider availability or hours authorized by a third party.

In one aspect, a system can include one or more processors configured toperform acts including receive one or more selectable fields of aclient, receive one or more selectable fields of one or more providersfrom a plurality of providers, determine pairings between the client andeach of the one or more providers based on the one or more selectablefields of the client and the one or more selectable fields of the one ormore providers from the plurality of providers, generate a schedule ofone or more potential sessions between the client and a first providerfrom the plurality of providers based on the pairings, and display theschedule on a graphical user interface.

In one aspect, the one or more processors can generate a schedule of oneor more potential sessions between the client and a second or moreproviders from the plurality of providers based on the pairings. In oneaspect, the one or more processors can receive the one or moreselectable fields of the client includes receiving inputs from a user ofthe graphical interface, receive selections of the one or moreselectable fields from the user, or receive client data from a remoteserver. In one aspect, the one or more selectable fields of the clientcan include rules or requirements of the client. In one aspect, the oneor more selectable fields of the client can include availability windowsof the client. In one aspect, the one or more selectable fields of thefirst provider can include availability windows of the first provider.In one aspect, the one or more selectable fields of the one or moreproviders can include credentials of the one or more providers.

In one aspect, the one or more processors can generate the schedule, atleast in part, based on calculating travel time and distance for each ofthe providers from the plurality of providers to the client.

In one aspect, the one or more processors can display a score associatedwith each of the one or more potential sessions between the client andthe first and second or more providers.

In one aspect, the one or more processors can receive selectable fieldsof a plurality of clients, receive selectable fields of a plurality ofproviders, determine pairings among each client of the plurality ofclients and each provider among the plurality of providers based on theselectable fields of the plurality of clients and selectable fields ofthe plurality of providers, and generate a schedule comprising one ormore potential sessions between each client with one or more providersfrom the plurality of providers based on the pairings.

Other embodiments are directed to systems and computer readable mediaassociated with methods described herein.

A better understanding of the nature and advantages of embodiments ofthe present invention may be gained with reference to the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Illustrative embodiments are described with reference to the followingfigures.

FIG. 1A shows a diagram illustrating a graphical user interface that canbe displayed on a display device for scheduling an appointment accordingto some embodiments of the invention.

FIGS. 1B-1E show additional diagrams illustrating the graphical userinterface that can be displayed on a display device for scheduling anappointment according to FIG. 1A.

FIGS. 2A-2B show diagrams illustrating a graphical user interface thatcan be displayed on a display device for optimizing a schedule accordingto some embodiments of the invention.

FIGS. 3A-3B show diagrams illustrating a graphical user interface thatcan be displayed on a display device for generating a schedule accordingto some embodiments of the invention.

FIGS. 4A-4I show additional diagrams illustrating a graphical userinterface that can be displayed on a display device for generating aschedule according to some embodiments of the invention.

FIGS. 5A-5C show diagrams illustrating a graphical user interface thatcan be displayed on a display device for automatically generating aschedule according to some embodiments of the invention.

FIGS. 6A-6C show additional diagrams illustrating a graphical userinterface that can be displayed on a display device for automaticallygenerating a schedule according to some embodiments of the invention.

FIG. 7 shows a flowchart describing the method of generating a scheduleof appointments according to some embodiments of the invention.

DETAILED DESCRIPTION

According to certain embodiments, methods and systems disclosed hereinrelate to a schedule generator.

In this specification, reference is made in detail to specificembodiments of the invention. Some of the embodiments or their aspectsare illustrated in the figures. For clarity in explanation, the systemhas been described with reference to specific embodiments, however itshould be understood that the system is not limited to the describedembodiments. On the contrary, the system covers alternatives,modifications, and equivalents as may be included within its scope asdefined by any patent claims. The following embodiments of the systemare set forth without any loss of generality to, and without imposinglimitations on, the claimed method. In the following description,specific details are set forth in order to provide a thoroughunderstanding of the present method. The present method may be practicedwithout some or all of these specific details. In addition, well knownfeatures may not have been described in detail to avoid unnecessarilyobscuring the system.

In addition, it should be understood that steps of the exemplary systemand method set forth in this exemplary patent can be performed indifferent orders than the order presented in this specification.Furthermore, some steps of the exemplary system and method may beperformed in parallel rather than being performed sequentially.

When forming a schedule including appointments between a group ofservice providers or resources and a group of clients, there is verylittle done to holistically plan out the schedule. In some industries,such as in healthcare, a healthcare entity will employ or contract anumber of healthcare providers, also known as resources to service thehealthcare entity's clients. Generally, the healthcare entity willconsider multiple parameters in deciding which healthcare provider willbe paired with a particular client and the appointment time in theschedule. The factors usually include availabilities of the healthcareproviders and availabilities of the clients in a given period of time.Other factors can include the total travel time a particular healthcareprovider will accumulate for meeting with a particular client, whetherthe client has specific needs such that only a few healthcare providerscan service or treat the client, and many other criteria.

Currently, a person who is tasked with making a schedule for a givenperiod of time will have to manually decide on the appointments whilemaking sure all of the criteria are met and not in conflict. Determiningsuch a schedule, especially when there are many available providers andmany clients, that satisfies the conditions and requirements of eachparty is difficult to track since the resources (service providers) havevarying availabilities, credentials, skill levels and specializations.On top of these factors, healthcare entities are motivated to save timeand reduce capital expenditures on labor by increasing the efficiency oftheir employees and contractors. For example, between two healthcareproviders whom can each meet a particular client for an appointment andsatisfy all the criteria for the appointment, the healthcare entitywould prefer to set an appointment with the healthcare provider thataccrues the fewer amount of travel time or cost. Additionally, ahealthcare entity would tend to prefer to set a group of appointmentssuch that they can schedule as many billable hours as possible. Thus, asystem that can aid a healthcare entity and/or its scheduler in creatinga schedule that can account for all of the various criteria that need tobe met for pairing service providers and clients as well as optimize thecost efficiency would greatly benefit the industry.

The following specification describes an example of a system and methodof generating and configuring a schedule. The schedule generator caninclude a graphical user interface (GUI) where selectable actions cangenerate appointments, or sessions, between a provider and a client. TheGUI can also display potential pairings for the user to finalize andalso display visual indicators for the quality of the pairings derivedfrom accounting for various factors. In one example, the GUI shows asystem for scheduling one or more appointments between one or morehealthcare providers and one or more clients.

An example application of the schedule generator system can be in thehealthcare industry. In one example, a healthcare entity that providesat-home healthcare services, such as therapy in autism treatmentprograms, employs or contracts a network of healthcare providers in aparticular geographical region. The healthcare entity will remotely setand match appointments between potential clients and the healthcareproviders that the healthcare entity employs. In this example, thehealthcare provider can be a person who is a doctor or therapist workingin the healthcare industry. The client can be a patient or a group ofpatients for the healthcare provider.

In certain healthcare fields, healthcare providers will be hired orcontracted by a healthcare entity to provide a certain amount ofservices per period of time. The amount of time agreed upon eachhealthcare provider and the healthcare entity for the healthcareprovider is called authorized contract hours. The amount of time set forauthorized contract hours can also be set by one or more 3^(rd) parties.Before creating a schedule, the healthcare entity will receive oralready have information about each of their hired healthcare providerssuch as availability, number of hours committed each week to work,credentials, home location of each healthcare provider, and otherfactors. The healthcare entity will also receive or already haveinformation about each of their clients such as availability, specificneeds, preferred healthcare provider, and other factors.

In this example, the healthcare entity can have clients that areflexible with which provider is paired with the client, as long as eachof the client's minimum requirements are met. There can also be clientsthat prefer to see specific healthcare providers in a specific routineschedule. There can also be different clients with different needs.

A user of the schedule generator can be an employee of the healthcareentity tasked to schedule appointments for clients. In this example, theschedule generator can determine appointment pairings based on relativegeographic locations of each healthcare provider to clients, whether isthe location from the healthcare provider's home, or from the locationof a previous appointment. The schedule generator can also determineappointment pairings based on travel time for each healthcare provider,any preferred healthcare provider and frequency of appointments requiredby a particular client, applicable labor laws that could affect thepairings, whether a supervising healthcare provider needs or isrequested to be present in the session, and others.

The schedule generator can determine schedule pairings with as manyclients with the healthcare entity's healthcare providers whileoptimizing time including maximizing the use of authorized contracthours and minimizing dead periods, travel efficiency includingminimizing cost of fuel and travel distance either for each healthcareprovider in the healthcare entity's network or as a whole.

In one example, a schedule generator similar to that of the schedulegenerator above can be applied to other industries than healthcare. Theschedule generator can be applied to any industry that typically has anetwork of providers (or resources) and a network of clients (orrequirements) such that parings of resources and requirements forappointments are made. The resource-requirement pairings can beoptimized especially in scenarios where the resources will be travelingfrom a base location, to appointments and other appointments within ageographic area. The schedule generator can also apply to industries andscenarios where the appointment times can be a short as minutes orseconds. For example, the schedule generator can be used to determine adelivery schedule for a fleet of delivery drivers, where the drivers arethe resources and the delivery locations are the requirements. Thus, thescheduler can be used for any application that includes a pool ofindividual data that include a variety of factors and criteria that haveto be met and optimally matched with another pool of individual datathat includes its own variety of factors and criteria that have to bemet.

I. Graphical User Interface

A. Data Focus

FIG. 1A illustrates an exemplary diagram of a first graphical userinterface (GUI) that can be displayed on a display device forconfiguring and generating a schedule. In this example, appointmentsgenerated will be between one or more healthcare providers, such astherapists, and clients of an entity which employs and/or providesaccess to healthcare providers. As illustrated in FIG. 1A, a datascheduler GUI 100 is displayed to the user which includes client dataand healthcare provider data. The client data and healthcare providerdata can be pre-uploaded from a server to the schedule generator ormanually inputted to the data scheduler GUI. The client data andhealthcare provider data will be saved on to the schedule generator suchthat a user can see the updated data the next time the user or adifferent user logs onto the schedule generator system. The datascheduler GUI will then pre-upload the client and healthcare providerdata including the previously added client and/or healthcare providerdata into the GUI from the last session.

In this example, the data scheduler GUI 100 includes a healthcareprovider field 110 and a client field 120. The configuration of the datascheduler GUI 100 can be configured such that the healthcare providerfield 110 can be displayed above the client field. The data schedulerGUI 100 can include criteria relevant to generating a functionalschedule. For example, the healthcare provider field 110 can include ahealthcare provider selection field 112 including a drop-down selectionmenu to identify a particular healthcare provider. The client field 120can include a client selection field including a drop-down selectionmenu to select and identify a particular client.

The healthcare provider field 110 can include a number of differentselectable fields as to specify particular criteria or identifyparticular information of the healthcare provider selected. Theselectable fields of the healthcare provider can include the homelocation of the provider, languages that the healthcare provider speaks,availabilities of the healthcare provider for a particular time periodselected, and a credential field 114 which lists the credentials thehealthcare provider has. These fields include information that the usercan consider regarding information about the healthcare provider whenscheduling an appointment with a potential client. The fields can alsoinclude information pertaining to the sex of the healthcare provider,and whether the healthcare provider has an assigned supervisor.

In one example, on a portion of the data scheduler GUI 100, a healthcareprovider availability graph 116 is displayed in conjunction with thehealthcare provider selection field 112. The healthcare provideravailability graph 116 displays a graph of the particular healthcareprovider selected from the drop-down menu of the healthcare providerselection field 112. In the example data scheduler GUI 100 of FIG. 1A,the user has selected the healthcare provider “Therapist1” and the“Weekly View”. Thus, the healthcare provider availability graph 116displays a schedule include time of day and day of week displaying whichtimes of the week the particular healthcare provider is available and isnot available. In this example, the graph can also show which part ofthe week the healthcare provider is working, as well as the client thehealthcare provider is working with and the client's supervisor. Thehealthcare provider availability graph 116 can also display times wherethe healthcare provider is neither available to work or are currentlyassigned a session. In another example, the user can manually edit thedisplayed availabilities and sessions displayed.

Similarly, the client field 120 can include a number of differentselectable fields as to specify particular criteria or identifyparticular information of the client selected. The selectable fields ofthe healthcare provider can include the home location of the client,required sex and/or credentials of the healthcare provider, thesupervisor of the client, language requirements from the client, andother fields. These fields include information that the user canconsider regarding information about the client when scheduling anappointment for the client.

The client field 120 can also include a number of different selectablefields as to specify particular criteria or identify particularinformation of the client selected. The selectable fields of the clientfield can include a client availability window 122 which allows the userto identify available times for the client based on the range of timethe user selects for that particular client in the client availabilitywindow 122. The user can also manually edit the selected client'savailability. The client field 120 can also include a blacklist field124 which identifies all of the healthcare providers that the client orsystem has indicated is not compatible with the particular client forreasons beyond the limitations in language, gender, certification, etc.

On a portion of the data scheduler GUI 100, a client availability graph126 is displayed in conjunction with the client field 120. The clientavailability graph 126 displays a graph of the particular clientselected from a drop-down menu of a client select field. In the exampledata scheduler GUI 100 of FIG. 1A, the user has selected client“Client10” and the “Weekly View”. Thus, the client availability graph126 displays a schedule include time of day and day of week displayingwhich times of the week the particular client is available and is notavailable. In this example, the graph can also show which part of theweek the client is already scheduled with appointments, thus unavailableto assign a session for those times. In another example, the user canmanually edit the displayed availabilities and sessions displayed.

In one example, the healthcare provider availability graph 116 andclient availability graph 126 is not limited to a specific duration oftime but can also be configured to display time by day, month or year.

B. Query Focus: Scheduling a New Appointment for a Client

FIG. 1B illustrates the first data scheduler GUI 100 in anotherconfiguration. In this configuration, the system displays a screen thatallows the user to execute different queries. In one example, the usercan conduct a query related to scheduling a session between a healthcareprovider and a client selected. In this configuration of the datascheduler GUI 100, a query field 130 is displayed. The query fieldincludes fields and tables in which the user can select different querytypes and parameters in generating schedules for a client and/orhealthcare provider.

In one example, the query field 130 can include a session time field 134such that the user can select, add, and/or input new ranges of time aparticular client selected is available. This is in contrast to displayof data scheduler GUI 100 which displays sessions for a client and/orhealthcare provider that is already present. The user can add multipleranges by day of week, start and end time, and session length. The queryfield 130 can also include a location field 132 which allows the user toinput and select a particular location of the client, which can be theclient's place of residence. The query field 130 can also includedifferent fields such as credentials required or preferred of thehealthcare provider, languages preferred, or preference of the sex ofthe healthcare provider.

As illustrated in FIG. 1C, once the user has inputted and selected allthe appropriate parameters of the particular client, the user can selectan “execute query” button which allows the schedule generator system togenerate a list of every healthcare provider that fit the criteria andparameters set in the query field. The list of healthcare providers canbe displayed in the query field in a travel time field 136 whichincludes a table of the healthcare providers with availability to takeon the client. The travel time field 136 will also include, on each lineof each healthcare provider in the table, the total number of hours thehealthcare provider can be scheduled for this client, and any additionalcost from driving that the healthcare provider will accrue based on thelocation of the healthcare provider.

In one example, the drive time cost is a function of the reimbursablemileage of potential trip to the client and the actual drive time usedfor the session with the client. In one example, the travel time field136 can be sorted to display the list of healthcare providers availablebased on alphabetical order of their names. In one example, the order ofthe healthcare providers available can be based on their drive time orcost.

Once a therapist is selected from the travel time field 136, anothertable can be displayed which includes particular time windows, sorted byday of week and time of day for the sessions, that the selectedhealthcare provider and client can work together. The data scheduler GUI100 can also display the healthcare provider graph 116 so the user cansee which other times the healthcare provider is available and notavailable.

C. Query Focus: Scheduling a Replacement Appointment when a HealthcareProvider is Removed

As illustrated in FIG. 1D, a query type that can be configured anddisplayed by the data scheduler GUI 100 related to a healthcare providerleaving the network of healthcare providers. In this example, the querytype can be selected from a query type selector 140 of the query field130. When this query is selected, the schedule generator GUI 100 candisplay the list of fields and information pertaining to a healthcareprovider if the healthcare provider is removed from the network, such aswhen a healthcare provider quits.

For example, as illustrated in FIG. 1D, the user has currently selectedto view information on healthcare provider “Therapist1”. The healthcareprovider availability graph 116 is displayed and shows that Therapist1is currently scheduled to see 3 different clients throughout the currentweek selected. If, in that week, Therapist1 quits or the user would likeinformation on the status of the clients if Therapist1 is no longer inthe database, or available, the user can select the particular user,Therapist1, in the query field 130 with the query type selector 140selected to a “Therapist Quitting” query type.

As illustrated in FIG. 1E, once the user selects “execute query” in thequery field 130, a list of client names in client names 142 will bedisplayed in a table. The list of client names will be consistent withthat of the client names that can be viewed on the healthcare provideravailability graph 116 when the Provider Selection Field 112 matches theinput parameters for the Therapist Quitting query.

In this example, the query field 130 can also display all of thehealthcare providers, in a list, that can take over and replace thesession currently scheduled between the client and the presently removedhealthcare provider. Once a client is selected, the display on the queryfield 130 will update with a list of healthcare providers and populatewith information on each line of each healthcare provider in the table,the total number of hours the healthcare provider can be scheduled forthis client, any additional cost from driving that the healthcareprovider will accrue based on the location of the healthcare provider.

The user can then view this information from the tables of the queryfield 130 and select an appropriate replacement healthcare provider witheach of the clients affected by the presently removed healthcareprovider leaving the system without manually inputting criteria and orrules of each client as if it was a new client's information inputted tofind a healthcare provider such as the examples provided in FIGS. 1B and1C. This function would also help the user schedule and rescheduleappointments for the client without needing to change the appointmenttimes.

D. Optimization

FIGS. 2A-2B illustrates another example GUI of the schedule generator.In this example, the GUI is an optimization GUI 200 for optimizingappointment times among clients and healthcare providers based on theexisting schedule.

Optimization GUI 200 includes a rule selector 210 having a target metricfield 212. In addition to the target metric field 212, the rule selector210 can also include a similarity type field and a similarity thresholdfield where the user can select different fields that can influence thebehavior of the algorithm. The optimization GUI 200 also includes anoptimization table 220 and can display a client availability graph 226and healthcare provider availability graph 236.

In this example, the rule selector 210 can include a plurality ofselectable algorithms from a drop-down menu which used to optimize thescheduling. In one example, the algorithm selected from the ruleselector can be healthcare provider focus, cost focus, etc. For example,in the algorithm can be used to display different configurations ofhealthcare provider and client matches for sessions such that the totalnumber of hours for a healthcare provider or a plurality of healthcareproviders for a period of time such as a day or week, is maximized. Inthis example, the algorithm would consider the total travel time of eachof the healthcare providers and how the travel time can be minimized tosuch that the healthcare provider can fit an optimized number ofsessions.

In one example, the different algorithms, whether it is one relating tomaximizing the number of sessions each therapist could have orminimizing travel time among the network of healthcare providers, or acombination thereof, the algorithms used to optimize the differentparameters can be configured to optimize the parameters based on certainunchangeable parameters, such as the client appointment time. Forexample, whether the specific pairings of healthcare providers andclients of any particular range of time changes, the client's schedulingtime can remain unchanged. If the user indicates that a particularclient or clients would like the schedule to remain unchanged from weekto week, or any other frequency, the schedule generator will match pairsand display potential pairings around that rule.

In one example, as illustrated in FIG. 2A, the user can select a “Bangfor the Buck—Therapist Focus” algorithm from the selectable ruleselector 210. In this example, the schedule generator will aggregate allof the scheduling information and requirements from each healthcareprovider and client and swap clients and healthcare providers, ifneeded, to generate a new schedule based upon cost savings whilemaintaining the number of hours the Healthcare Providers (therapists)worked in a given week. The cost savings accounted for by the algorithmcan be impacted by a target metric, selected by a target metric field212. In this example, the target metric selected is the “DrivingCost—Type 1”, which internally represents a common cost reimbursementformula. Once the user selects and clicks on the “Generate Results”button to run the algorithm, the optimization GUI 200 will displayinformation of healthcare provider and client matches in theoptimization table 220.

In this example, as the user selects any information from the table,such as “weekly savings”, client availability graph 226 and healthcareprovider availability graph 236 will update and correspond to theparameter selected based on the selection in the optimization table 220regarding the particular client and healthcare provider. The update willprovide information based on the potential change in healthcare providerto client instead of the presently scheduled client-healthcare providerpair.

As illustrated in FIG. 2B, if and when the user implements the suggestedchanges from the algorithm, the GUI 200 will then display and/or updatean optimization projection field 222 which lists the particularreassignments of client-schedule pairs, the cost savings forimplementing these changes. In one example, the displayed cost savingsis based on the cost saving if the change is permanent for the rest ofthe year.

E. New Schedule

1. Generate Schedule

FIG. 3A-3B illustrate a scheduler selection GUI 300 configured to set upa schedule among clients and healthcare providers. In this schedulerselection GUI 300, the user can generate a new schedule from the list ofclients and healthcare providers between a client and a healthcareprovider or among a number of clients and a number of healthcareproviders all at once. The scheduler selection GUI 300 includes a clientselector 310 and a healthcare provider selector 320.

In this example, the user can generate a new schedule based on thenumber of clients selected and healthcare providers selected. If theuser checks the box “Select All Clients” and “Select All Therapists” ora different number of healthcare providers selected, the schedulegenerator will generate a schedule to be displayed including allclients. The user can then click the “Initialize Scheduler” function or“Proceed to Windows” function.

Next, as illustrated in FIG. 3B, the client selector 310 will update anddisplay a list of clients that will need new healthcare providers. Inthis configuration, the user can select a particular client and a clientavailability window 320 will populate the window with table displayingthe number of sessions per week, time for each session, and currentavailabilities. The client availability graph 312 will also update basedon the client selected. The client selector 310 can be populated with alist of client names that were previously selected for inclusion.

In one example, the client selector 310 will also include a fieldindicating the number of sessions required per week of the particularclient. The number can be manually inputted or edited by the user. Theschedule generator can also have a default number set, such as threetimes per week. The session lengths displayed on the graph can also bechanged to reflect different time intervals by changing the sessionlength field in the client availability window 320.

2. Graphically Assign Schedule

FIGS. 4A-4I illustrate a GUI of a configurable schedule based on theschedule created by the scheduler selection GUI 300 of FIGS. 3A-3B. TheGUI of FIGS. 4A-4I include a graphical scheduler selection GUI 400 whichincludes a healthcare provider field which presents all of thehealthcare providers' availability in graph form, similar of that tohealthcare provider availability graph 116 of FIGS. 1A-1E, and aselectable client selector 420 which includes a list of clients thatrequire new sessions.

As illustrated in FIG. 4A, a default, initial, healthcare provider field410 is displayed. The graphs of each healthcare provider willgraphically display all of the availabilities of the healthcareproviders.

As illustrated in FIG. 4B, as the user selects a particular client fromthe client selector 420, the graphs of each healthcare provider in thehealthcare provider field will update with graphical representationsindicating availability of the selected client with each of thehealthcare providers. In one example, the graphical representations ofavailability of the updated graphs of each of the healthcare providerscan be ranked to indicate which healthcare provider is the best fit forthe selected client. In one example, the ranking can be weightedindicators 422 based on color codes. In this example, the ranking can bebased on any additional driving cost and dead time, the period thehealthcare provider is neither working nor traveling from the start ofhis first session to the end of his last session. For example, a darkgreen color can indicate the best rank and a red color can indicate theworst fit. The user can then select the healthcare provider based on theinformation provided by the graphical representations of availabilityand the rankings in each availability.

For example, in FIG. 4B, the user can determine that based on theavailability and ranking, healthcare provider, “Ther14”, is the best fitfor the selected client. The user can select and click on the Ther14graph and the healthcare provider field 410 will update and only displaya selectable field 424 including an enlarged and selectable version ofthe Ther14 graph, as illustrated in FIG. 4C.

As illustrated in FIG. 4C, the user can then highlight and/or select anyor all of the available time windows in a selectable session schedulingfield 430 between the selected healthcare provider and client. In thisexample, the user can highlight all three available time windows,creating sessions including one on Monday, one on Tuesday, and one onThursday between Ther14 and Client 10. When the user is satisfied withthe selection, the user can click the assign button 440 and the schedulegenerator will assign the session or sessions between the client andhealthcare provider based on the selected times.

As illustrated in FIG. 4D, once the user has finished the particularassignment between the selected client and selected healthcare providerillustrated in FIG. 4C, the graphical scheduler selection GUI 400 willrevert back to displaying the healthcare provider availability field 410including all of the graphs of the users. At this step, because the userhas now assigned a session or sessions for a particular client-therapistpair, that particular therapist's graph will now update and graphicallyshow that booking a session during those times are unavailable. This isbecause those time slots for sessions are already booked with thepreviously selected client. As illustrated in FIG. 4D, the assignmentwill be listed in the assignment list 450. In this example, the listwill include one client-healthcare provider, which is Client 10 andTher14.

FIG. 4E illustrates the same graphical scheduler selection GUI 400. Asillustrated FIG. 4E, when the user wants to select and assign a sessionor sessions for a different client, the graphs of the healthcareprovider availability field 410 will update with the graphicalrepresentations of availability and rankings in each selectable field424 similar to that of the selectable fields 424 in FIG. 4C. However,unlike that of FIG. 4B, the selectable fields in FIG. 4E will includethe graphical representations of the unavailable time windows due to thepreviously booked sessions with previously assigned clients.

Further, as illustrated in FIG. 4F, if the user selects a selectablefield 424 of a healthcare provider that already has sessions booked, theupdated selectable field 424 in the expanded view will update the andgraphically indicate the best times, based on driving time for thehealthcare provider, to book session for this particular healthcareprovider. The selectable field 424 will graphically represent the besttimes to book a session with a color gradient. The color gradient canrange from a dark green color being representing the best time throughthe color spectrum to an orange color representing the worst time. Thisis graphically represented in the example selectable field 424. In thisGUI, the color gradient can also depend on the dead time, which is theperiod the healthcare provider is neither working nor travelling fromthe start of his first session to the end of his last session. In oneexample, the dead time will be automatically generated by the schedulegenerator based on drive time between one client location to the next orfrom one client location back to the home location for the healthcareprovider. In this GUI, the color gradient can also depend on influencesexternal to the selected client-therapist pair, such as whether or notmaking the selected pairing would prevent the Entity from providingservices to other clients.

In this GUI, the selectable field 424 will also display, graphically,travel time indicators 470 representing the travel time period thatneeds to be allocated for the healthcare provider. In this example, thelatest session could end for Client13 in the morning time would be 11:45because Ther14 has a 15 minute drive to Client10's location. Similarly,the earliest a session can begin in the afternoon portion is 2:15 sinceTher14 would have a 30 minute drive time from Client10 to Client13. TheGUI can graphically display such feature with travel times and distancesbeing variable between start and end locations, as well as departuretime.

As illustrated in FIG. 4G, once the user then assigns the presentlyselected client, in this case the second selected client, the graphicalscheduler selection GUI 400 will update the display once again includingthe healthcare provider availability field 410 with updated selectablefields accounting for all currently booked sessions representedgraphically. Further, the assignment list 450 will also update.

FIGS. 4H-4I illustrate another example of adding and assigning anadditional client to healthcare provider similar to that represented inFIGS. 4B-G.

F. Automatic Scheduler

The following describes a function of the schedule generatorautomatically generating a full schedule using artificial intelligence.

1. Automatically Generate Schedule

FIG. 5A-5B illustrate the display of scheduler selection GUI 300 inanother implementation. In this example, scheduler selection GUI 300 isconfigured to generate a schedule programmatically among clients andhealthcare providers. In this scheduler selection GUI 300, the user cangenerate a new schedule from the list of clients and healthcareproviders between a client and a healthcare provider or among a numberof clients and a number of healthcare providers all at once. Thescheduler selection GUI 300 includes an automatic scheduler button 510.

In this example, at the step of configuring the clients who need to beassigned with new healthcare providers, instead of selecting manual modefor creating a schedule which displays the graphical scheduler selectionGUI 400, of FIGS. 4A-4I, the user can select and click the automaticscheduler button 510, as illustrated in FIG. 5A.

As illustrated in FIG. 5B, when the user selects the automatic schedulerbutton 510 from the scheduler selection GUI 300, a search input field520 will be displayed. The search input field 520 allows the user toinput parameters that will be used to run an artificial intelligenceprogram of the schedule generator and automatically generate a schedulewithout the user needing to manually, using graphical displays, assignthe clients who need new healthcare providers. This artificialintelligence system is not limited to scheduling healthcare providersand clients. The artificial intelligence program can schedule anynetwork of parties, places, or entities or combination thereof thatneeds to be scheduled with each other in a coordinated way.

As illustrated in FIG. 5C, an automatic schedule selection GUI 500 isdisplayed including a generated pairing graph, a plurality of selectableschedules 530 and a generated pairing table 540 as a result of selectingthe automatic generator function of the schedule selection GUI 300. Inthis example, the artificial intelligence program tests a number ofdifferent pairings and scenarios among the list of clients andhealthcare providers selected and generates a table of potentialconfigurations of sessions for all of the selected clients at once.

In this example, illustrated in FIG. 5C, fifty selectable schedules aregenerated and plotted with their associated total reimbursable milesagainst the total non-reimbursable miles in a scatter graph with agradient background to aid in determining the schedules' performance,and the behavior of the gradient being defined by user inputs such asthose from the Search Input Field 520 In one example, the user canselect the selectable schedule 530 that represents the least number ofreimbursable and non-reimbursable miles, effectively selecting thepotential pairings with the least amount of total travel time (bothreimbursable and non-reimbursable) among all of the client andhealthcare provider sessions. When the particular selectable schedule530 is selected, the generated pairing table 540 will list every pairingof client-healthcare provider sessions suggested by the configurationgenerated from the selected schedule 530. From this page, the user canmanually edit each line item and components of each line item including,for example, start time, end time, day, client-healthcare providerpairings, and location for the session. In one example, the list in thegenerated pairing table can be sorted by different parameters. In thisparticular example, illustrated in FIG. 5C, drive time, reimbursablemiles, client availabilities and session requirements, healthcareprovider availabilities, and whether providers satisfy clientrequirements are taken into consideration by the artificial intelligenceprogram in determining and generating the potential pairings andsessions.

2. Graphically View and Revise Schedule

As illustrated in FIGS. 6A-6C, once the schedule is generated includingall of the parings and session times, the user can select a “manuallyedit and investigate” button to view a graphical scheduler selection GUI600 (similar to that of graphical scheduler selection GUI 400). In thisGUI, as illustrated in FIG. 6A, instead of having to then select eachclient and use graphical indicators and rankings to manually assign eachhealthcare provider, all of the healthcare provider and client sessionsare already booked without any conflicts in availability. This can beshown in assignment list 650 where the entire client list of the alreadypaired assignment list is fully filled (contrast with that of FIG. 4B,where after the Manual Window View is formed, there are noclient-healthcare provider pairings yet).

FIG. 6B illustrates a GUI having a selectable field 624 of a particularhealthcare provider. The healthcare provider's calendar will already befilled with session marked graphically on the calendar. A scheduledsessions table will be displayed which lists all of the differentclients listed on the calendar for this particular healthcare provider.

FIG. 6C illustrates a GUI including a display that graphically indicatespotential reassignments from the automatically generated assignment fromthe schedule generator. In this example, the user can select aparticular pairing between a client and a healthcare provider in theAssignment List 650. The graphical scheduler selection GUI 600 willupdate and include a healthcare provider availability field 610 withgraphical representations of the currently paired healthcare providerwith the client, and potentially different healthcare providers that canbe reassigned. In one example, the potentially different healthcareproviders that can be reassigned as graphically represented withrankings indicated in each selectable field 624 based on color codes.

In the depicted example flow diagram 700 of FIG. 7 , at block 701, thesystem can initialize a scheduler. At block 702, the system can extractclient field data and healthcare provider data from a database. At block703, the system can receive additional inputted client field data andhealthcare provider data. At block 704, the system can identify clientswith booked sessions. At block 705, the system can match clients withoutsessions and healthcare providers based on the client field data andhealthcare provider data to form client-healthcare provider sessionpairings. At block 706, the system can display the client-healthcareprovider sessions pairings on a display. At block 707, the system candisplay graphically, potential reconfigurations of client-healthcareprovider sessions pairings. At block 708, the system can receive anyselections of reconfigurations or manual reconfigurations of pairings.At block 709, the system can generate schedule including allconfigurations and reconfigurations of pairings. And the system, atblock 710 and block 711, can display the information to a user, update adatabase, or a combination thereof.

G. Alternate Applications

As mentioned earlier, a schedule generator similar to that of theschedule generator above can be applied to other industries thanhealthcare. The scheduler can also be driven by artificial intelligenceprogram similar to that discussed in previous sections of thespecification.

For example, an automatic schedule generator can be applied to creatingan errand schedule. The automatic schedule generator can retrieve datafrom an online database such as “Google Places” or “Google Maps” whichaggregates stores and locations. From the database, the system canretrieve information about location, drive time, and times of operationsfor a particular day or week of the place. The scheduler system can thengenerate a schedule for a user or a group of people who need toaccomplish multiple tasks by visiting different locations. In oneexample, the tasks can have rules such as having to be done by a certaintime. The scheduler can generate a schedule which displays the differentplaces and times to go to such places to handle the tasks. The tasks caninclude visiting stores for shopping, travelling to meetings, or othererrands.

For example, if one of the tasks is visiting a grocery store whichincludes store name and amount of time needed to shop (this is inputtedby the user, or the database already has this information), thescheduler can identify whether there are multiple locations or the samestore or if multiple stores can satisfy the criteria from a shoppinglist, account for drive time to the different locations and determinethe best location and schedule relative to other tasks. The automaticschedule generator can also calculate optimal times and locations forthese tasks.

In another example, an automatic schedule generator can be applied tocreating a schedule for delivery among a fleet of delivery drivers. Thedrivers can be the resources and the delivery locations can be therequirements (or locations that need servicing/delivery). The automaticschedule generator can determine the number of hours each driver canwork, relative locations for each delivery point, and other factors, anddetermine a schedule for all of the drivers the most optimal schedule todistribute the deliveries in a given period of time, similar to that ofthe automatic schedule generator for the healthcare providers andclients.

In another example, the automatic schedule generator can be applied to afleet of autonomous vehicles. The scheduler can automatically determineschedules and routes for an entire fleet for a given amount of timeselected, such as a week. Each specific vehicle of the fleet would beassigned tasks based on parameters and criteria that need to be met.

Thus, the scheduler can be used for any application that includes a poolof individual data that include a variety of factors and criteria thathave to be met and matched near-optimally with another pool ofindividual data that includes its own variety of factors and criteriathat have to be met.

In this specification, reference is made in detail to specificembodiments of the invention. Some of the embodiments or their aspectsare illustrated in the drawings.

For clarity in explanation, the invention has been described withreference to specific embodiments, however it should be understood thatthe invention is not limited to the described embodiments. The inventioncovers alternatives, modifications, and equivalents as may be includedwithin its scope as defined by any patent claims. The followingembodiments of the invention are set forth without any loss ofgenerality to, and without imposing limitations on, the claimedinvention. In the following description, specific details are set forthin order to provide a thorough understanding of the present invention.The present invention may be practiced without some or all of thesespecific details. In addition, well known features may not have beendescribed in detail to avoid unnecessarily obscuring the invention.

In addition, it should be understood that steps of the exemplary methodsset forth in this exemplary patent can be performed in different ordersthan the order presented in this specification. Furthermore, some stepsof the exemplary methods may be performed in parallel rather than beingperformed sequentially. The present invention may be practiced withdifferent combinations of the features in each described configuration.

The terminology used herein is for the purpose of describing particularaspects only and is not intended to be limiting of the disclosure. Asused herein, the singular forms “a,” “an,” and “the” are intended tocomprise the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

While the invention has been particularly shown and described withreference to specific embodiments thereof, it should be understood thatchanges in the form and details of the disclosed embodiments may be madewithout departing from the scope of the invention. Although variousadvantages, aspects, and objects of the present invention have beendiscussed herein with reference to various embodiments, it will beunderstood that the scope of the invention should not be limited byreference to such advantages, aspects, and objects. Rather, the scope ofthe invention should be determined with reference to patent claims.

What is claimed is:
 1. A method for generating a graphical userinterface configured to display, at least in part, a schedule, themethod comprising: displaying a graphical user interface having a firstportion and a second portion, the first portion including one or moreselectable fields of one or more providers and a provider availabilitygraph, the second portion including one or more selectable fields of aclient and a client availability graph; receiving an input for the oneor more selectable fields of a provider; in response to receive theinput for the one or more selectable fields, displaying an availabilityof the provider via the provider availability graph, wherein theprovider availability graph displays time-based schedule of appointmentswith multiple clients; receiving an input for one or more selectablefields of the client; in response to receiving the input of the one ormore selection fields of the client, displaying an availability of theclient via the client availability graph; determining pairings betweenthe client and each of the one or more providers based on the one ormore selectable fields of the client and the one or more selectablefields of the one or more providers from the plurality of providers;scoring pairings between the client and each of the one or moreproviders based on the one or more selectable fields of the client andthe one or more selectable fields of the one or more providers from theplurality of providers; generating a schedule of one or more potentialsessions between the client and a first provider from the plurality ofproviders based on the scored pairings; displaying the schedule on thegraphical user interface; displaying, via the graphical user interface,a rule selector for the selection of a plurality of algorithms used tooptimize scheduling; displaying, via the first portion of the graphicaluser interface, the client availability graph; and displaying, via thesecond portion of the graphical user interface, a provider availabilitygraph.
 2. The method of claim 1, further comprising: displaying anoptimization graphical user interface comprising a rule selector for theselection of an optimization algorithm from a plurality of algorithms;receiving a selection of one of the algorithms from the plurality ofalgorithms; and based on the selected algorithm, optimizing the scheduleof the provider.
 3. The method of claim 2, further comprising:displaying via the optimization graphical user interface furthercomprising a target metric selector for the selection of a target metricfrom a plurality of target metrics; receiving a selection of a targetmetric; and based on the selection of the target metric, optimizing theschedule of the provider.
 4. The method of claim 3, further comprising:displaying, via the first portion of the graphical user interface, theclient availability graph with the optimized schedule.
 5. The method ofclaim 1, further comprising: scoring pairings between the client andeach of the one or more providers; and generating a schedule for one ormore potential sessions between the client and a provider from theplurality of providers based on the scored pairings.
 6. The method ofclaim 1, further comprising: generating a schedule for one or morepotential sessions between the client and the provider, wherein theschedule includes multiple sessions based on a default predeterminednumber of sessions with a default session length.
 7. Non-transitorycomputer storage that stores executable program instructions that, whenexecuted by one or more computing devices, configure the one or morecomputing devices to perform operations comprising: displaying agraphical user interface having a first portion and a second portion,the first portion including one or more selectable fields of one or moreproviders and a provider availability graph, the second portionincluding one or more selectable fields of a client and a clientavailability graph; receiving an input for the one or more selectablefields of a provider; in response to receive the input for the one ormore selectable fields, displaying an availability of the provider viathe provider availability graph, wherein the provider availability graphdisplays time-based schedule of appointments with multiple clients;receiving an input for one or more selectable fields of the client; inresponse to receiving the input of the one or more selection fields ofthe client, displaying an availability of the client via the clientavailability graph; determining pairings between the client and each ofthe one or more providers based on the one or more selectable fields ofthe client and the one or more selectable fields of the one or moreproviders from the plurality of providers; scoring pairings between theclient and each of the one or more providers based on the one or moreselectable fields of the client and the one or more selectable fields ofthe one or more providers from the plurality of providers; generating aschedule of one or more potential sessions between the client and afirst provider from the plurality of providers based on the scoredpairings; displaying the schedule on the graphical user interface;displaying, via the graphical user interface, a rule selector for theselection of a plurality of algorithms used to optimize scheduling;displaying, via the first portion of the graphical user interface, theclient availability graph; and displaying, via the second portion of thegraphical user interface, a provider availability graph.
 8. Thenon-transitory computer storage of claim 7, wherein the operationsfurther comprise: displaying an optimization graphical user interfacecomprising a rule selector for the selection of an optimizationalgorithm from a plurality of algorithms; receiving a selection of oneof the algorithms from the plurality of algorithms; and based on theselected algorithm, optimizing the schedule of the provider.
 9. Thenon-transitory computer storage of claim 8, wherein the operationsfurther comprise: displaying via the optimization graphical userinterface further comprising a target metric selector for the selectionof a target metric from a plurality of target metrics; receiving aselection of a target metric; and based on the selection of the targetmetric, optimizing the schedule of the provider.
 10. The non-transitorycomputer storage of claim 1, wherein the operations further comprise:displaying, via the first portion of the graphical user interface, theclient availability graph with the optimized schedule.
 11. Thenon-transitory computer storage of claim 7, wherein the operationsfurther comprise: scoring pairings between the client and each of theone or more providers; and generating a schedule for one or morepotential sessions between the client and a provider from the pluralityof providers based on the scored pairings.
 12. The non-transitorycomputer storage of claim 7, wherein the operations further comprise:generating a schedule for one or more potential sessions between theclient and the provider, wherein the schedule includes multiple sessionsbased on a default predetermined number of sessions with a defaultsession length.
 13. A system comprising one or more non-transitorycomputer-readable media storing computer-executable instructions that,when executed on one or more processors, cause the one or moreprocessors to perform operations comprising: displaying a graphical userinterface having a first portion and a second portion, the first portionincluding one or more selectable fields of one or more providers and aprovider availability graph, the second portion including one or moreselectable fields of a client and a client availability graph; receivingan input for the one or more selectable fields of a provider; inresponse to receive the input for the one or more selectable fields,displaying an availability of the provider via the provider availabilitygraph, wherein the provider availability graph displays time-basedschedule of appointments with multiple clients; receiving an input forone or more selectable fields of the client; in response to receivingthe input of the one or more selection fields of the client, displayingan availability of the client via the client availability graph;determining pairings between the client and each of the one or moreproviders based on the one or more selectable fields of the client andthe one or more selectable fields of the one or more providers from theplurality of providers; scoring pairings between the client and each ofthe one or more providers based on the one or more selectable fields ofthe client and the one or more selectable fields of the one or moreproviders from the plurality of providers; generating a schedule of oneor more potential sessions between the client and a first provider fromthe plurality of providers based on the scored pairings; displaying theschedule on the graphical user interface; displaying, via the graphicaluser interface, a rule selector for the selection of a plurality ofalgorithms used to optimize scheduling; displaying, via the firstportion of the graphical user interface, the client availability graph;and displaying, via the second portion of the graphical user interface,a provider availability graph.
 14. The system of claim 13, furthercomprising the operations of: displaying an optimization graphical userinterface comprising a rule selector for the selection of anoptimization algorithm from a plurality of algorithms; receiving aselection of one of the algorithms from the plurality of algorithms; andbased on the selected algorithm, optimizing the schedule of theprovider.
 15. The system of claim 14, further comprising the operationsof: displaying via the optimization graphical user interface furthercomprising a target metric selector for the selection of a target metricfrom a plurality of target metrics; receiving a selection of a targetmetric; and based on the selection of the target metric, optimizing theschedule of the provider.
 16. The system of claim 15, further comprisingthe operations of: displaying, via the first portion of the graphicaluser interface, the client availability graph with the optimizedschedule.
 17. The system of claim 13, further comprising the operationsof: generating a schedule for one or more potential sessions between theclient and the provider, wherein the schedule includes multiple sessionsbased on a default predetermined number of sessions with a defaultsession length.